#include "courier12.h"
#include <nds.h>

using namespace WoopsiUI;

static const u16 Courier12_glyphdata[461] = {
/* '!' */	0xFE80,
/* '"' */	0xB680,0x0000,0x0000,
/* '#' */	0x1429,0xF942,0x853F,0x2850,0x0000,0x0000,
/* '$' */	0x23A3,0x0706,0x2E20,0x0000,
/* '%' */	0x4145,0x1041,0x0411,0x4504,0x0000,0x0000,
/* '&' */	0x3081,0x0106,0x1265,0x4476,0x0000,0x0000,
/* ''' */	0xE000,
/* '(' */	0x2949,0x2448,0x8000,
/* ')' */	0x8912,0x494A,0x0000,
/* '*' */	0x0001,0xB1CF,0xE71B,0x0000,0x0000,0x0000,
/* '+' */	0x0000,0x4081,0x1FC4,0x0810,0x0000,0x0000,
/* ',' */	0x0000,0x6000,
/* '-' */	0x0000,0x0000,0x1FC0,0x0000,0x0000,0x0000,
/* '.' */	0x0080,
/* '/' */	0x0004,0x1041,0x0410,0x4000,0x0000,0x0000,
/* '0' */	0x7463,0x18C6,0x3170,0x0000,
/* '1' */	0x2708,0x4210,0x84F8,0x0000,
/* '2' */	0x7442,0x1111,0x10F8,0x0000,
/* '3' */	0x7442,0x1304,0x3170,0x0000,
/* '4' */	0x118C,0xA54B,0xE238,0x0000,
/* '5' */	0xFC21,0x0F04,0x3170,0x0000,
/* '6' */	0x3221,0x0F46,0x3170,0x0000,
/* '7' */	0xFC42,0x2110,0x8840,0x0000,
/* '8' */	0x7463,0x1746,0x3170,0x0000,
/* '9' */	0x7463,0x1784,0x2260,0x0000,
/* ':' */	0x1080,
/* ';' */	0x0100,0x6000,
/* '<' */	0x0012,0x4842,0x1000,
/* '=' */	0x0001,0xF07C,0x0000,0x0000,
/* '>' */	0x0084,0x2124,0x8000,
/* '?' */	0x7442,0x1110,0x8020,0x0000,
/* '@' */	0x3C86,0x6D5A,0xB567,0x2038,0x0000,0x0000,
/* 'A' */	0x3020,0x4142,0x889F,0x22EE,0x0000,0x0000,
/* 'B' */	0xFC85,0x0A17,0xC850,0xA1FC,0x0000,0x0000,
/* 'C' */	0x3C86,0x0408,0x1020,0x213C,0x0000,0x0000,
/* 'D' */	0xF889,0x0A14,0x2850,0xA2F8,0x0000,0x0000,
/* 'E' */	0xFE85,0x0247,0x8910,0x21FE,0x0000,0x0000,
/* 'F' */	0xFE85,0x0247,0x8910,0x20F0,0x0000,0x0000,
/* 'G' */	0x3C86,0x0408,0x11E0,0xA13C,0x0000,0x0000,
/* 'H' */	0xEE89,0x1227,0xC891,0x22EE,0x0000,0x0000,
/* 'I' */	0xF908,0x4210,0x84F8,0x0000,
/* 'J' */	0x3C20,0x8208,0x28A2,0x7000,0x0000,
/* 'K' */	0xE689,0x2245,0x0E12,0x22E6,0x0000,0x0000,
/* 'L' */	0xF840,0x8102,0x0408,0x11FE,0x0000,0x0000,
/* 'M' */	0xC689,0xB365,0x4A91,0x22EE,0x0000,0x0000,
/* 'N' */	0xCE89,0x9325,0x4993,0x22E4,0x0000,0x0000,
/* 'O' */	0x388A,0x0C18,0x3060,0xA238,0x0000,0x0000,
/* 'P' */	0xFC85,0x0A17,0xC810,0x20F0,0x0000,0x0000,
/* 'Q' */	0x388A,0x0C18,0x3060,0xA238,0x6C00,0x0000,
/* 'R' */	0xFC85,0x0A17,0xC912,0x22E6,0x0000,0x0000,
/* 'S' */	0x7D06,0x0407,0xC040,0xC17C,0x0000,0x0000,
/* 'T' */	0xFF24,0x4081,0x0204,0x0838,0x0000,0x0000,
/* 'U' */	0xEE89,0x1224,0x4891,0x2238,0x0000,0x0000,
/* 'V' */	0xEE89,0x1222,0x850A,0x0810,0x0000,0x0000,
/* 'W' */	0xEE89,0x1225,0x4A95,0x1428,0x0000,0x0000,
/* 'X' */	0xEE88,0xA141,0x050A,0x22EE,0x0000,0x0000,
/* 'Y' */	0xEE89,0x1142,0x8204,0x0838,0x0000,0x0000,
/* 'Z' */	0xFF08,0x2041,0x0408,0x21FE,0x0000,0x0000,
/* '[' */	0xF249,0x2493,0x8000,
/* '\' */	0x0101,0x0101,0x0101,0x0100,0x0000,0x0000,
/* ']' */	0xE492,0x4927,0x8000,
/* '^' */	0x22A2,0x0000,0x0000,0x0000,
/* '_' */	0x0000,0x0000,0x0000,0x0000,0x0000,0xFF00,
/* '`' */	0x9000,0x0000,
/* 'a' */	0x0000,0x03C0,0x4FA1,0x427A,0x0000,0x0000,
/* 'b' */	0xC081,0x03E4,0x2850,0xA1FC,0x0000,0x0000,
/* 'c' */	0x0000,0x03E8,0x3020,0x417C,0x0000,0x0000,
/* 'd' */	0x0C08,0x13E8,0x50A1,0x427E,0x0000,0x0000,
/* 'e' */	0x0000,0x03E8,0x3FE0,0x417C,0x0000,0x0000,
/* 'f' */	0x344F,0x4444,0xF000,
/* 'g' */	0x0000,0x03F8,0x50A1,0x3E04,0x09E0,0x0000,
/* 'h' */	0xC081,0x02C6,0x4891,0x22EE,0x0000,0x0000,
/* 'i' */	0x2001,0xC210,0x84F8,0x0000,
/* 'j' */	0x100F,0x1111,0x11E0,
/* 'k' */	0xC081,0x0264,0x8A1C,0x24C6,0x0000,0x0000,
/* 'l' */	0x6108,0x4210,0x84F8,0x0000,
/* 'm' */	0x0000,0x0745,0x4A95,0x2AD6,0x0000,0x0000,
/* 'n' */	0x0000,0x06C6,0x4891,0x22EE,0x0000,0x0000,
/* 'o' */	0x0000,0x03E8,0x3060,0xC17C,0x0000,0x0000,
/* 'p' */	0x0000,0x07E4,0x2850,0xA17C,0x8380,0x0000,
/* 'q' */	0x0000,0x03F8,0x50A1,0x427C,0x0838,0x0000,
/* 'r' */	0x0000,0x0763,0x2408,0x10F8,0x0000,0x0000,
/* 's' */	0x0000,0x03E8,0x2E03,0x417C,0x0000,0x0000,
/* 't' */	0x0211,0xE421,0x0930,0x0000,
/* 'u' */	0x0000,0x0664,0x4891,0x2636,0x0000,0x0000,
/* 'v' */	0x0000,0x0774,0x488A,0x1410,0x0000,0x0000,
/* 'w' */	0x0000,0x0774,0x4A95,0x1428,0x0000,0x0000,
/* 'x' */	0x0000,0x0774,0x470E,0x22EE,0x0000,0x0000,
/* 'y' */	0x0000,0x0774,0x488A,0x1410,0x2180,0x0000,
/* 'z' */	0x0000,0x3F88,0x4211,0xFC00,0x0000,
/* '{' */	0x1908,0x4260,0x8421,0x0600,
/* '|' */	0xFFF0,
/* '}' */	0xC108,0x420C,0x8421,0x3000,
/* '~' */	0x00C6,0x4C60,0x0000,0x0000,0x0000,0x0000,
/* 0x7F */	0x1FFF,0xFFFC,0x0000,
};

static const u16 Courier12_offset[95] = {
    0,    1,    4,   10,   14,   20,   26,   27,   30,   33,   39,   45,   47,   53,   54,   60,
   64,   68,   72,   76,   80,   84,   88,   92,   96,  100,  101,  103,  106,  110,  113,  117,
  123,  129,  135,  141,  147,  153,  159,  165,  171,  175,  180,  186,  192,  198,  204,  210,
  216,  222,  228,  234,  240,  246,  252,  258,  264,  270,  276,  279,  285,  288,  292,  298,
  300,  306,  312,  318,  324,  330,  333,  339,  345,  349,  352,  358,  362,  368,  374,  380,
  386,  392,  398,  404,  408,  414,  420,  426,  432,  438,  443,  447,  448,  452,  458
};

static const u8 Courier12_width[95] = {
 1, 3, 7, 5, 7, 7, 1, 3, 3, 7, 7, 2, 7, 1, 7, 5,
 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 2, 4, 5, 4, 5, 7,
 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 7, 7, 7, 7, 7, 7,
 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 3, 7, 3, 5, 8, 2,
 7, 7, 7, 7, 7, 4, 7, 7, 5, 4, 7, 5, 7, 7, 7, 7,
 7, 7, 7, 5, 7, 7, 7, 7, 7, 6, 5, 1, 5, 7, 3
};

Courier12::Courier12(u8 fixedWidth) : PackedFont1 (
	33,
	127,
	Courier12_glyphdata,
	Courier12_offset,
	Courier12_width,
	12,
	3,
	8,
	8
) {
	if (fixedWidth) setFontWidth(fixedWidth);
};
